1. Technical Field
The present invention relates to signal processing and data encryption. In particular, the disclosed embodiments relate to communicating an encrypted data word via an optical code division multiplexed (OCDM) signal.
2. Description of the Related Art
Spectral phase encoding (SPE) involves selectively changing the phases of the frequency lines in an optical pulse according to a particular code. For example, if an optical pulse has frequency lines {f1, . . . fn}, then the frequency lines may be coded by a code {c1 . . . . cm}. An element in the code corresponds to a frequency line, and may shift the phase of the frequency line according to a value of the element. Different codes cause different shifts in the frequency lines.
Different codes may also map to different transmission data. For example, a code A (representing a series of frequency line phase shifts) may represent a data bit of 0 for transmission and a second code B (representing a different series of frequency line phase shifts) may represent a data bit of 1 for transmission. Thus, an optical pulse encoded with code A may carry a value of 0 and an optical pulse encoded with code B may carry a value of 1. It is assumed that a receiver knows the mapping between codes and transmission data, and therefore can extract the transmission data for each received coded optical pulse. This use of different codes to transmit data, rather than modulating the amplitude or phase of the optical pulses, is generally known as code-shift keying (CSK) modulation.
The encoded signal, however, may be intercepted by a third party, who may read the encoded optical pulse and determine whether code A or code B was used for encoding. After intercepting enough signals, it would be trivial for the third party to determine that code A corresponds to 0 and code B corresponds to 1.
Researchers at Princeton University devised a system for encoding an optical pulse with one of a pair of codes that would not reveal the corresponding data bit to an intercepting third party. FIG. 1 illustrates this system.
FIG. 1 illustrates a system 100 for encoding an optical pulse with one or the other of a pair of codes to carry a single bit of data. System 100 includes transmitter 102 for encoding and transmitting an optical pulse over link 104 and receiver 106 for receiving and decoding the optical pulse. System 100 also includes interfering user i 108 and interfering user j 110 that have access to link 104.
Transmitter 102 includes Optical Code Division Multiple Access (OCDMA) encoder A 112 and OCDMA encoder B 114. The OCDMA encoders operate by giving physical delays to different wavelength components in an optical signals, and are not spectral phase encoders. OCDMA encoder A 112 and OCDMA encoder B 114 both receive optical pulses from a laser (not shown). OCDMA encoder A 112 encodes the optical pulses with a code A, while OCDMA encoder B 114 encodes the optical pulses with a code B. Instead of transmitting code A to represent a 1 and code B to represent a 0, transmitter 102 encrypts the codes according to a random key bit. The key bit may be randomly generated or pseudo-randomly generated with equal probability of being 1 or 0. Thus, the code used to encode an optical pulse is determined both according to the data bit and the key bit, as shown below.
Transmitter 102 also includes switches 116 and 118, both 2×2 switches with two inputs and two outputs. Switch 116 is controlled by a data bit from a plurality of data bits for transmission, while switch 118 is controlled by a random key bit from a plurality of random key bits for encrypting. In general, a value of 0 controls a switch to enter into a “bar” state, in which the upper input is switched to the upper output and the lower input is switched to the lower output. Moreover, a value of 1 controls a switch to enter into a “cross” state, in which the upper input is switched to the lower output and the lower input is switched to the upper output.
Switches 116 and 118 collectively perform an exclusive-or (XOR) operation between a single data bit and a single key bit to select a code. For example, if the data bit is 1 and the key bit is 1, then (1 XOR 1)=0, and code A corresponding to 0 is selected for transmission. This is implemented by switches 116 and 118 as follows. Data bit 1 causes switch 116 to enter into a cross state, so that a code A signal (outputted from OCDMA encoder A 112) is switched to a lower output of switch 116, and that a code B signal (outputting from OCDMA encoder B 114) is switched to a upper output of switch 116. Code A and B signals reach switch 118, which is controlled to enter into a cross state by key bit 1. Thus, the code A signal A is switched from the lower input of switch 118 to the upper output, and code B signal B is switched from the upper input of switch 118 to the lower output. Switch 118 drops its lower output and sends its upper output (i.e., the code A signal) onward via link 104. Thus, switches 116 and 118 perform an XOR operation of data bit 1 and key bit 1 by selecting code A.
The use of data bit 1 and key bit 1 is exemplary only. Indeed, table 120 illustrates the resulting code transmissions arising from the four different combinations of data bits (d) and random key bits (r).
In this example, an optical pulse encoded with code A travels over link 104 where it may be combined with signals from other users sharing link 104, such as interfering user i 108 and/or interfering user j 110. The interfering users use different codes from A and B in their signals. More importantly, interfering user i 108 and interfering user j 110 (and any eavesdroppers on the system) will also receive a copy of the combined signals on link 104 from all other users. This makes eavesdropping an issue. However, even if interfering user i 108 and interfering user j 110 determine that the optical pulse is encoded with code A, it is impossible to associate a data bit with code A without knowledge of the corresponding random key bit. Indeed, because code A was selected by XORing the data word with a random key word, there is an equal likelihood that code A corresponds to either a 1 or a 0.
The optical pulse encoded with code A (combined with other signals from other users) travels to receiver 106, which includes another 2×2 switch, switch 122. Switch 122 is controlled by the same key bit used to encode the optical signal at transmitter 102. That is to say, the receiver has to have knowledge of the random key bit string generated at the transmitter. In this sense, this system corresponds to a one-time pad in which both the transmitter and receiver share a random key string that is unknown to potential eavesdroppers. The key bit at receiver 106 undoes the XOR at transmitter 102, so that receiver 106 can correctly recover the data bit. In particular, switch 122 is controlled to enter the cross state by key bit 1. This causes the upper input of switch 122 to be switched to the lower output of switch 122.
Receiver 106 also includes OCDMA decoder A 124 and OCDMA decoder B 126. OCDMA decoder A 124 outputs a positive signal (i.e., a large optical pulse) if its input signal is an optical pulse encoded with code A, and outputs a null signal (i.e., no large optical pulse) if its input signal is an optical pulse encoded with another code, such as code B. Similarly, OCDMA decoder B 126 outputs a positive signal if its input signal is an optical pulse encoded with code B, and outputs a null signal if its input signal is an optical pulse encoded with another code, such as code A. The outputs of OCDMA decoder A 124 and OCDMA decoder B 126 feed into 2×1 coupler 128, which combines the outputs into a single signal, and feeds the single signal to gate 130. Gate 130 determines whether the signal corresponds to a data bit of 0 or 1.
In this example, switch 122 switches a code A signal, arriving at its upper input, to its lower output and to OCDMA decoder B 126. OCDMA decoder B 126 then outputs a null signal upon processing code A signal. Switch 122 further switches its lower input, which is empty, to its upper output, which is connected to OCDMA decoder A 124. OCDMA decoder A 124 outputs nothing because it receives no input signal. Thus, coupler 128 couples nothing from OCDMA decoder A 124 with a null signal from OCDMA decoder B 126, and outputs the null signal to gate 130. Gate 130 maps a null signal to a data bit of 1 and a positive signal to a data bit of 0. Because gate 130 receives a null signal in this example, it determines that the data bit is 1. In this way, system 100 encodes an optical pulse with a code to represent a data bit, using a random key, such that only a receiver with the random key can determine the value of the data bit.
A drawback of system 100 is that a single encoded optical pulse from the laser is limited to representing a single bit. It may be desirable for a single encoded optical pulse to represent multiple bits, such as a data word, in order to increase throughput.